<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="https://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/BasicTemplate.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- InstanceBeginEditable name="doctitle" -->
<title>Rewired Documentation | Rewired Editor</title>
<!-- InstanceEndEditable -->
<!-- InstanceParam name="isRoot" type="boolean" value="false" -->
<!-- InstanceParam name="wide" type="boolean" value="false" -->
<link href="files/css/styles.css" rel="stylesheet" type="text/css" />
<!-- Favicons -->
<link rel="icon" type="image/x-icon" href="/projects/rewired/files/images/favicon.ico?v=1" />
<!-- Apple Icons -->
<!-- For iPad with high-resolution Retina display running iOS = 7: -->
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="files/images/favicon_152x152.png?v=1">
<!-- For iPad with high-resolution Retina display running iOS = 6: -->
<link rel="apple-touch-icon-precomposed" sizes="144x144" href="files/images/favicon_144x144.png?v=1">
<!-- For iPhone with high-resolution Retina display running iOS = 7: -->
<link rel="apple-touch-icon-precomposed" sizes="120x120" href="files/images/favicon_120x120.png?v=1">
<!-- For iPhone with high-resolution Retina display running iOS = 6: -->
<link rel="apple-touch-icon-precomposed" sizes="114x114" href="files/images/favicon_114x114.png?v=1">
<!-- For the iPad mini and the first- and second-generation iPad on iOS = 7: -->
<link rel="apple-touch-icon-precomposed" sizes="76x76" href="files/images/favicon_76x76.png?v=1">
<!-- For the iPad mini and the first- and second-generation iPad on iOS = 6: -->
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="files/images/favicon_72x72.png?v=1">
<!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: -->
<link rel="apple-touch-icon-precomposed" href="files/images/favicon_57x57.png?v=1">
</head>

<body>


<div class="container">

    <div class="google-search-bar">
        <script>
          (function() {
            var cx = '007961148920562332911:oocvtwz5jce';
            var gcse = document.createElement('script');
            gcse.type = 'text/javascript';
            gcse.async = true;
            gcse.src = 'https://cse.google.com/cse.js?cx=' + cx;
            var s = document.getElementsByTagName('script')[0];
            s.parentNode.insertBefore(gcse, s);
          })();
        </script>
        <gcse:search></gcse:search>
    </div>

  <div class="content">
	
	
	 
    <div class="page-body">
	
    
         
	    
      	<div class="sidebar-nav">
	        <h4><a href="Documentation.html">Documentation</a></h4>
	        <ul>
	          <li><a href="Overview.html">Overview</a></li>
	          <li><a href="ReleaseNotes.txt">Release Notes</a></li>
          </ul>
	        <strong>Essentials:</strong>
            <ol>
              <li><a href="Installation.html">Installation</a></li>
              <li><a href="QuickStart.html">Quick Start</a></li>
              <li><a href="BasicUsage.html">Basic Usage</a></li>
              <li><a href="Deployment.html">Deployment</a></li>
              <li><a href="BestPractices.html">Best Practices</a></li>
              <li><a href="RewiredEditor.html">Rewired Editor</a></li>
              <li><a href="https://guavaman.com/projects/rewired/docs/api-reference" target="_blank">API Reference</a></li>
            </ol>
            <strong>Concepts:</strong>
            <ul>
              <li><a href="InputManager.html">Input Manager</a></li>
              <li><a href="Players.html">Players</a></li>
              <li><a href="Actions.html">Actions</a></li>
              <li><a href="InputBehaviors.html">Input Behaviors</a></li>
              <li><a href="Controllers.html">Controllers</a></li>
              <li><a href="ControllerMaps.html">Controller Maps</a></li>
              <li><a href="ControllerTemplates.html">Controller Templates</a></li>
              <li><a href="MapCategories.html">Map Categories</a></li>
              <li><a href="Layouts.html">Layouts</a></li>
              <li><a href="LayoutManager.html">Layout Manager</a></li>
              <li><a href="MapEnabler.html">Map Enabler</a></li>
              <li><a href="CustomControllers.html">Custom Controllers</a></li>
            </ul>
            <strong>Extras:</strong>
            <ul>
              <li><a href="ControlMapper.html" title="Control Mapper">Control Mapper</a></li>
	          <li><a href="TouchControls.html" title="Touch Controls">Touch Controls</a></li>
              <li><a href="RewiredStandaloneInputModule.html">Rewired Standalone Input Module</a></li>
	          <li><a href="UnityInputOverride.html" title="Unity Input Override">Unity Input Override</a></li>
            </ul>
            <strong>Misc:</strong>
            <ul>
	          <li><a href="ComponentControls.html" title="Component Controls">Component Controls</a></li>
	          <li><a href="PlayerControllers.html" title="Player Controllers">Player Controllers</a></li>
	          <li><a href="InputMapper.html" title="Input Mapper">Input Mapper</a></li>
	          <li><a href="UserDataStore.html" title="User Data Store">User Data Store</a></li>
            </ul>
            <strong>How To's:</strong>
            <ul>
            	<li><a href="HowTos.html">See all topics...</a></li>
            </ul>
            <strong>Help:</strong>
            <ul>
              <li><a href="SupportedControllers.html" title="Supported Controllers">Supported Controllers</a></li>
              <li><a href="Overview.html#tested-platforms" title="Tested Platforms">Tested Platforms</a></li>
              <li><a href="Troubleshooting.html" title="Troubleshooting">Troubleshooting</a></li>
              <li><a href="KnownIssues.html">Known Issues</a></li>
              <li><a href="SpecialPlatformSupport.html" title="Special Platform Support">Special Platform Support</a></li>
	          <li><a href="Examples.html" title="Examples">Examples</a></li>
              <li><a href="Integration.html">Integrations</a></li>
	          <li><a href="Updating.html" title="Updating Rewired">Updating Rewired</a></li>
            </ul>
            <strong>FAQ</strong>
            <ul>
            	<li><a href="FAQ.html">See all topics...</a></li>
            </ul>
            <strong>Unity Help:</strong>
            <ul>
              <li><a href="https://docs.unity3d.com/Manual/" target="_blank">Unity Manual</a></li>
              <li><a href="https://docs.unity3d.com/ScriptReference/" target="_blank">Unity Script Reference</a></li>
              <li><a href="https://unity3d.com/learn/tutorials/modules" target="_blank">Unity Tutorials</a></li>
            </ul>
            <strong>Links:</strong>
            <ul>
              <li><a href="https://guavaman.com/projects/rewired">Rewired Website</a></li>
              <li><a href="https://guavaman.com/projects/rewired/docs">Web Documentation</a></li>
            </ul>
        </div>
        
    
    	<div class="main-body">
	        <div class="logo"><a href="https://guavaman.com/projects/rewired" title="Rewired"><img src="files/images/rewired-logo.png" width="173" height="139" alt="Rewired" /></a></div>
                     
            <h1>
            <!-- InstanceBeginEditable name="PageHeader" -->Rewired Editor
      <!-- InstanceEndEditable -->
            </h1>
            
			<!-- InstanceBeginEditable name="MainBody" -->

    <p>The Rewired Editor allows you to create players, actions, controller maps, custom controllers, configure settings, and more.</p>
    <hr />
    <h4>Pages:</h4>
    <ul>
      <li><a href="#Settings">Settings</a></li>
      <li><a href="#Tools">Tools</a></li>
      <li><a href="#Players">Players</a></li>
      <li><a href="#Actions">Actions</a></li>
      <li><a href="#InputBehaviors">Input Behaviors</a></li>
      <li><a href="#MapCategories">Map Categories</a></li>
      <li><a href="#ActionCategories">Action Categories</a></li>
      <li><a href="#CustomControllers">Custom Controllers</a></li>
      <li><a href="#JoystickLayouts">Joystick Layouts</a></li>
      <li><a href="#KeyboardLayouts">Keyboard Layouts</a></li>
      <li><a href="#MouseLayouts">Mouse Layouts</a></li>
      <li><a href="#CustomControllerLayouts">Custom Controller Layouts</a></li>
      <li><a href="#JoystickMaps">Joystick Maps</a></li>
      <li><a href="#KeyboardMaps">Keyboard Maps</a></li>
      <li><a href="#MouseMaps">Mouse Maps</a></li>
      <li><a href="#CustomControllerMaps">Custom Controller Maps</a></li>
      <li><a href="#LayoutManagerRules">Layout Manager Rules</a></li>
      <li><a href="#MapEnablerRules">Map Enabler Rules</a></li>
    </ul>
    <hr />
    <h3><a name="Settings" id="Settings"></a>Settings</h3>
<p><img src="files/images/rewirededitor_settings.png" alt="Settings" /></p>
<p>The Settings page allows you change the options for the current Input Manager. The options available are as follows:</p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="22%" valign="top"><strong>Update Loop:</strong></td>
    <td width="78%" valign="top"><p>Updates input in one or more game loops.<br />
        Selecting Multiple will update input in each loop chosen. Each loop is updated and tracked independently so all input calls will work in either loop. Select multiple if you need to be able to get input, for example, from both Update and FixedUpdate.</p></td>
  </tr>
  <tr>
    <td valign="top">Update</td>
    <td valign="top">Updates input in the Update loop. (Required)</td>
  </tr>
  <tr>
    <td valign="top">FixedUpdate</td>
    <td valign="top"><p>Updates input in the FixedUpdate loop.  If you try to get input from the FixedUpdate loop without enabling this, you will miss some input data. Ex: GetButtonDown and GetKeyDown will not always return correctly.</p></td>
  </tr>
  <tr>
    <td valign="top">OnGUI</td>
    <td valign="top"><p>Updates input in the OnGUI loop. Only necessary if you need GetButtonDown to work within the Unity GUI.</p>
      <p>WARNING: Enabling this will cause a 300-500 byte memory allocation per frame due to the way OnGUI works. This will contribute to garbage collection overhead.</p></td>
  </tr>
  <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><strong>Platform Settings:</strong></td>
    <td valign="top">Certain build platforms have settings which you can set individually. Click the name of the platform, then options will appear below. For settings that affect all build platforms, click the &quot;All&quot; button.</td>
  </tr>
  <tr>
    <td valign="top"><strong>All:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top">Disable Native Input</td>
    <td valign="top"><p>Force Unity Input to be the input source. This will disable all external input sources such as Raw Input, Direct Input, XInput, and native OSX.</p>
      <p>WARNING:
        Unity Input does not allow hot-plugging on some platforms. If you need hot-plugging, do not check this box.</p></td>
  </tr>
  <tr>
    <td valign="top">Disable Keyboard</td>
    <td valign="top">Disable keyboard input on all platforms? Disabling this can improve performance slightly.</td>
  </tr>
  <tr>
    <td valign="top">Disable Mouse</td>
    <td valign="top">Disable mouse input on all platforms? Disabling this can improve performance slightly.</td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-ignore-input-when-app-not-in-focus" id="settings-ignore-input-when-app-not-in-focus"></a>Ignore Input When App Not In Focus</td>
    <td valign="top"><p>Ignores input if the application is not in focus. This setting has no effect on some platforms.</p>
      <p>NOTE: Disabling this does not guarantee that input will be processed when the application is out of focus. Whether input is received by the application or not is dependent on A) the input device type B) the current platform C) the input source(s) being used.</p></td>
  </tr>
  <tr>
    <td valign="top"><strong><a name="settings-windows" id="settings-windows"></a>Windows:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-windows-input-source" id="settings-windows-input-source"></a>Input Source</td>
    <td valign="top"><p>The primary input source for the Windows Standalone platform.</p>
      <p>Raw Input - Use Raw Input for the input source. Note: Raw Input carries significant advantages over Direct Input such as better Bluetooth controller support, support for more elements on certain controllers, better controller recognition, etc.  Does not require any extra libraries. Windows Control Panel joystick calibration does not affect joystick axes.</p>
      <p>XInput - Use XInput for the input source. This will use XInput only. All non-XInput compatible controllers will be non-functional. To support both XInput and non-XInput controllers, use Raw Input or Direct Input instead and enable the Use XInput option. Supports XBox Controller 2-motor vibration, independent trigger values, but only supports 4 XInput-compatible controllers at once. Installation of DirectX end-user runtimes is required on Windows XP.</p>
      <p>Windows Gaming Input - Use Windows.Gaming.Input for the input source. This will use Windows.Gaming.Input only for controllers. All non-WindowsGamingInput compatible controllers will be non-functional. At the present time, only Gamepads are supported. To support all controller types, use Raw Input or Direct Input instead and enable the Use Windows Gaming Input option. Supports XBox Controller 4-motor vibration, independent trigger values, and supports more than 4 XInput-compatible controllers at once. (Requires Windows 10, October 2018 Update version 1809 (10.0.17763.0) or greater.  Will fall back to other input sources on older versions of Windows.)</p>
<p> Direct Input - Use Direct Input for the input source. Installation of DirectX end-user runtimes may be required for Direct Input support. Windows Control Panel joystick calibration settings affect joystick axes.</p>
<p> SDL2 - Use SDL2 for the input source. This option requires the SDL2 runtime library to be installed. Note: SDL2 does not support as many devices as other native input sources.</p>
<p>Unity Input - Use Unity fallback input.</p></td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-windows-use-windows-gaming-input" id="settings-windows-use-windows-gaming-input"></a>Use Windows Gaming Input</td>
    <td valign="top"><p>On Windows, use Windows.Gaming.Input for compatible devices. Devices not compatible with Windows Gaming Input will be handled by the primary input source. Supports XBox Controller 4-motor vibration, independent trigger values, and supports more than 4 XInput-compatible controllers at once.</p>
      <p>(Requires Windows 10, October 2018 Update version 1809 (10.0.17763.0) or greater.  Will fall back to other input sources on older versions of Windows.)</p>
      <p>If both Use XInput and Use Windows Gaming Input are enabled, if Windows Gaming Input is unavalable on the system, XInput will be used as the fallback input source for compatible devices. Otherwise, the primary input source will be used as the fallback input source.</p>
      <p>(Only available when  Input Source is set to Raw Input or Direct Input.)</p></td>
  </tr>
  <tr>
    <td valign="top">Use XInput</td>
    <td valign="top"><p>On Windows, use XInput for compatible devices. Devices not compatible with XInput will be handled by the primary input source.   Supports XBox Controller 2-motor vibration, independent trigger values, but only supports 4 XInput-compatible controllers at once. Installation of DirectX end-user runtimes is required on Windows XP.</p>
      <p>If both Use XInput and Use Windows Gaming Input are enabled, if Windows Gaming Input is unavalable on the system, XInput will be used as the fallback input source for compatible devices. Otherwise, the primary input source will be used as the fallback input source.</p>
      <p>(Only available when  Input Source is set to Raw Input, Direct Input, or Windows Gaming Input.)</p></td>
  </tr>
  <tr>
    <td valign="top">Joystick Refresh Rate</td>
    <td valign="top"><p>The joystick refresh rate in frames per second. Set this to a higher value if you need higher precision input timing at high frame rates such as for a music beat game. Higher values result in higher CPU usage. Note that setting this to a very high value when the game is running at a low frame rate will not result in higher precision input.</p>
      <p>This settings only applies to input sources that use a separate thread to poll for joystick input values (currently Direct Input, XInput, and Windows Gaming Input). This setting does not apply to event-based input sources such as Raw Input.</p></td>
  </tr>
  <tr>
    <td valign="top"> Native Mouse Handling</td>
    <td valign="top"><p>Use native libraries to handle the mouse. Enabling this will eliminate certain bugs associated with Unity's mouse handling.</p>
      <p>(Only available when  Input Source is set to Raw Input or Direct Input.)</p></td>
  </tr>
  <tr>
    <td valign="top">Native Keyboard Handling</td>
    <td valign="top"><p>Use native libraries to handle keyboard input.</p>
      <p>(Only available when Input Source is set to Raw Input or Direct Input.)</p></td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-windows-enhanced-device-support" id="settings-windows-enhanced-device-support"></a>Enhanced Device Support</td>
    <td valign="top"><p>Enable low-level enhanced support for certain devices. If enhanced support is available for a particular device, this will enable device-specific features such as vibration / force feedback, lights, gyroscopes, accelerometers, touchpads, etc.</p>
      <p>(Only available when Input Source is set to Raw Input.)</p></td>
  </tr>
  <tr>
    <td valign="top"><strong><a name="settings-osx" id="settings-osx"></a>OSX:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top">Input Source</td>
    <td valign="top"><p>The primary input source for the OSX Standalone platform.</p>
      <p>Native - Use native input for the input source. This provides the best device support.</p>
      <p>Game Controller - Use Apple Game Controller framework for the input source. This provides support only for devices supported by the Game Controller framework. This may not include all devices supported by the Native input source.</p>
      <p>SDL2 - Use SDL2 for the input source. May be required for Steam Streaming and Steam Controller support in OSX. This option requires the SDL2 runtime library to be installed. Note: SDL2 does not support as many devices as other native input sources.</p>
<p>Unity Input - Use Unity fallback input. </p></td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-osx-game-controller-framework" id="settings-osx-game-controller-framework"></a>Use Game Controller Framework</td>
    <td valign="top"><p>Use the Apple Game Controller Framework for compatible devices.</p>
      <p>(Only available when Input Source is set to Native.)</p></td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-osx-assign-joysticks-by-system-player-id" id="settings-osx-assign-joysticks-by-system-player-id"></a>Assign Joysticks by System Player Id</td>
    <td valign="top"><p>If this option is enabled, joysticks will be assigned to Rewired Players based on the native player id assigned by the system. This option ensures that the joystick will match to the correct Rewired Player when auto-assigned. This option overrides some other joystick auto-assignment settings. More than one joystick will be assigned to a Player if multiple joysticks are found for that system player id.</p>
      <p>NOTE: This option only applies to devices handled by the Apple Game Controller Framework. It does not apply to HID devices handled by IO Kit or any other input source.</p></td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-osx-enhanced-device-support" id="settings-osx-enhanced-device-support"></a>Enhanced Device Support</td>
    <td valign="top"><p>Enable low-level enhanced support for certain devices. If enhanced support is available for a particular device, this will enable device-specific features such as vibration / force feedback, lights, gyroscopes, accelerometers, touchpads, etc.</p>
      <p>(Only available when Input Source is set to Native.)</p></td>
  </tr>
  <tr>
    <td valign="top"><strong>Linux:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top">Input Source</td>
    <td valign="top"><p>The primary input source for the Linux Standalone platform.</p>
      <p>Native - Use native input for the input source. This provides the best device support.</p>
      <p> SDL2 - Use SDL2 for the input source. May be required for Steam Streaming and Steam Controller support in Linux. This option requires the SDL2 runtime library to be installed. Note: SDL2 does not support as many devices as other native input sources.</p>
      <p>Unity Input - Use Unity fallback input. </p></td>
  </tr>
  <tr>
    <td valign="top"><strong><a name="settings-uwp" id="settings-uwp"></a>Windows UWP:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top">Input Source</td>
    <td valign="top"><p>The primary input source for the Windows 10 Universal platform.</p>
      <p>Native - Use native input for the input source. This provides the best device support.</p>
      <p>Unity Input - Use Unity fallback input.</p></td>
  </tr>
  <tr>
    <td valign="top">Use Gamepad API</td>
    <td valign="top"><p>Use Windows.Gaming.Input.Gamepad for compatible devices. Also enables special features for compatible devices such as vibration.</p>
      <p>(Only available when Input Source is set to Native.)</p></td>
  </tr>
  <tr>
    <td valign="top">Use HID API</td>
    <td valign="top"><p>This allows support for older gamepads, gamepads made for Android, flight controllers, racing wheels, etc. In order to use this feature, you must add support for HID gamepads and joysticks to the app manifest file. Please see the Special Platform Support  -&gt; Windows 10 Universal documentation for details.</p>
      <p>(Only available when Input Source is set to Native.)</p></td>
  </tr>
  <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><strong><a name="settings-android" id="settings-android"></a>Android:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-android-support-unknown-gamepads" id="settings-android-support-unknown-gamepads"></a>Support Unknown Gamepads</td>
    <td valign="top"><p>Treat all unrecognized controllers as gamepads using the standardized Android gamepad layout. All recognized controllers will be treated normally.</p>
      <p>Warning: While most Android gamepads conform to this layout, there are exceptions. Addtionally, with this option enabled, all unrecognized non-gamepad joystick devices used will be limited to only the set of elements available on a gamepad. If your game needs to support devices other than Android gamepads, disable this option.</p>
      <p>This option only applies to the Android platform.</p></td>
  </tr>
  <tr>
    <td valign="top"><strong><a name="settings-xbone" id="settings-xbone"></a>Xbox One:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top">Input Source</td>
    <td valign="top"><p>The primary input source for the Xbox One platform.</p>
      <p>Native - Use native input for the input source. This provides the best device support.</p>
      <p>Unity Input - Use Unity fallback input.</p></td>
  </tr>
  <tr>
    <td valign="top"><strong>Each Platform:</strong></td>
    <td valign="top">Options here appear in all individual platform pages.</td>
  </tr>
  <tr>
    <td valign="top">Disable Keyboard</td>
    <td valign="top">Disable keyboard input on this platform? Disabling this can improve performance slightly.</td>
  </tr>
  <tr>
    <td valign="top">Disable Mouse</td>
    <td valign="top">Disable mouse input on this platform? Disabling this can improve performance slightly.</td>
  </tr>
  <tr>
    <td valign="top">Ignore Input When App Not In Focus</td>
    <td valign="top"><p>Ignores input if the application is not in focus. This setting has no effect on some platforms.</p>
      <p>NOTE: Disabling this does not guarantee that input will be processed when the application is out of focus. Whether input is received by the application or not is dependent on A) the input device type B) the current platform C) the input source(s) being used.</p></td>
  </tr>
  <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><strong><a name="settings-joystick-auto-assignment" id="settings-joystick-auto-assignment"></a>Joystick Auto-Assignment:</strong></td>
    <td valign="top">NOTE: Joystick Auto-Assignment  applies to Joysticks only (controllers other than keyboard or mouse.) Joystick Auto-Assignment does not consider whether a Player has Keyboard Maps assigned, so it will not skip assigning joysticks to Players that are using the keyboard.</td>
  </tr>
  <tr>
    <td valign="top">Auto-Assign Joysticks</td>
    <td valign="top">Automatically assign joysticks to players as they are connected.</td>
  </tr>
  <tr>
    <td valign="top">Max Joysticks Per Player</td>
    <td valign="top">How many joysticks is a player allowed to be assigned? If enabled, connected joysticks will be assigned to each player up to this limit.</td>
  </tr>
  <tr>
    <td valign="top">Assign To Playing Players Only</td>
    <td valign="top">Only assign joysticks to players that have isPlaying = true. Non-playing players will not be assigned joysticks.</td>
  </tr>
  <tr>
    <td valign="top">Distribute Joysticks Evenly</td>
    <td valign="top">When auto-assigning joysticks, assign to players with the fewest number of joysticks first. Will assign up to the limit of Max Joysticks Per Player.</td>
  </tr>
  <tr>
    <td valign="top">Reassign To Previous Owner</td>
    <td valign="top">When a joystick is disconnected and reconnected, attempt to reassign the joystick to the last player it was assigned to.</td>
  </tr>
  <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><strong><a name="settings-global-settings" id="settings-global-settings"></a>Global Settings:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top">Default Joystick Dead Zone Type</td>
    <td valign="top"><p>The default calculation type for joystick axis dead zones.</p>
      <p>Radial: X and Y are combined and the dead zone is calculated on the length of the vector. This allows smooth sweeping in a circular motion. This is the best choice for most games.</p>
      <p>Axial: X and Y axes are calculated independently. Use this if your game requires more precise 4-directional movement (ie: some platformers, chess games, etc.)</p>
      <p><br />
        This setting only applies to joysticks on recognized controllers.</p></td>
  </tr>
  <tr>
    <td valign="top">Default Joystick Sensitivity Type</td>
    <td valign="top"><p>The default calculation type for joystick axis sensitivity.</p>
      <p>Radial: X and Y are combined and the sensitivity is calculated on the length of the vector.</p>
      <p>Axial: X and Y axes are calculated independently.<br />
      </p>
      <p>This setting only applies to joysticks on recognized controllers.</p></td>
  </tr>
  <tr>
    <td valign="top">Default Axis Sensitivity Type</td>
    <td valign="top"><p>Determines how axis sensitivity will be calculated by default.<br />
      </p>
      <p>Multiplier: Value is multiplied by sensitivity.</p>
      <p>Power: Value is raised to a power.<br />
        As power nears 0, sensitivity of the axis closer to the zero/center position increases, while sensitivty closer the max position decreases.<br />
        As power increases past 1, sensitivity of the axis closer to the zero/center position decreases, while sensitivity close to the max position increases.</p>
      <p>Curve: Value is multiplied by a point on a curve.</p></td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-activate-action-buttons-on-negative-value" id="settings-activate-action-buttons-on-negative-value"></a>Activate Action Buttons on Negative Value</td>
    <td valign="top">Determines how button values are calculated by Player Actions. If enabled, Actions with either a negative or positive Axis value will return True when queried with player.GetButton. If disabled, Actions with a negative Axis value will always return False when queried with player.GetButton, and must be queried with player.GetNegativeButton.</td>
  </tr>
  <tr>
    <td valign="top">Force 4-Way Hats</td>
    <td valign="top">Force all 8-way hats on recognized joysticks to be treated as 4-way hats. If enabled, the corner directions on all hats will activate the adjacent 2 cardinal direction buttons instead of the corner button. This is useful if you need joystick hats to behave like D-Pads instead of 8-way hats.</td>
  </tr>
  <tr>
    <td valign="top">Throttle Calibration Mode</td>
    <td valign="top">Determines how throttles on recognized controllers are calibrated. By default, throttles are calibrated for a range of 0 to +1. This is suitable for most flight and racing games. Some games may require a range of -1 to +1 such as space flight games where a negative value denotes a reverse thrust. Changing this setting will revert all throttle calibrations to the default values for the chosen calibration mode.</td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-defer-controller-connected-events-on-start" id="settings-defer-controller-connected-events-on-start"></a>Defer Controller Connected Events On Start</td>
    <td valign="top">Defer controller connected events for controllers already connected when Rewired initializes until the Start event instead of during initialization. Normally, it's impossible to receive controller connection events at the start of runtime because Rewired initializes before any other script is able to subscribe to the controller connected event. Enabling this will defer the controller connected events until the Start event, allowing your scripts to subscribe to the controller connected event in Awake and still receive the event callback. If disabled, controller connection events for controllers already connected before runtime starts will be missed.</td>
  </tr>
  <tr>
    <td valign="top">Logging</td>
    <td valign="top">Determines the level of internal logging.</td>
  </tr>
  <tr>
    <td valign="top">&nbsp;</td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><strong><a name="settings-editor-settings" id="settings-editor-settings"></a>Editor Settings:</strong></td>
    <td valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top"><a name="settings-editor-settings-allow-input-in-editor-scene-views" id="settings-editor-settings-allow-input-in-editor-scene-views"></a>Allow Input in Editor Scene Views</td>
    <td valign="top"><p>If enabled, input will be allowed when any Scene View has focus. This option will have no effect when native input is not used as the input source for a device.</p>
      <p>Note: Due to the limitated information available from the Unity Editor about the current state of focus, when this option is enabled, input will still be processed when the Unity Editor is not in focus on OSX and Linux.</p></td>
  </tr>
 </table>
<p>&nbsp;</p>
<hr />
<h3><a name="Tools" id="Settings2"></a>Tools</h3>
<p><img src="files/images/rewirededitor_tools.png" alt="Tools" /></p>
<p><strong>Export Constants:</strong></p>
<p>Allows you to export a list of constants for all Rewired Actions, Map Categories, and Layouts. These constants can be used in place of strings when interacting with the Rewired API. Clicking &quot;Export&quot; will create a CS file which must be saved somewhere in your project.</p>
<p>Note: The exported consts will only be valid for this Rewired Input Manager. Also, if you add or delete items from the Rewired Input Manager, this list must be exported again.</p>
<p> (See <a href="HowTos.html#exporting-constants">How To's - Exporting constants for use in scripting</a> for more information.)</p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td valign="top">All Caps Constant Names</td>
    <td valign="top">Constant names will be written in all capital letters.</td>
  </tr>
  <tr>
    <td width="19%" valign="top">Use Namespace</td>
    <td width="81%" valign="top">Wrap all the exported classes in a namespace.</td>
  </tr>
  <tr>
    <td valign="top">Namespace</td>
    <td valign="top">The namespace. Only valid C# namespace characters are allowed.</td>
  </tr>
  <tr>
    <td valign="top">Use Parent Class</td>
    <td valign="top">Wrap all the exported classes in a single parent class for better organization.</td>
  </tr>
  <tr>
    <td valign="top">Parent Class Name</td>
    <td valign="top">Name of the parent class. Only valid C# class name characters are allowed. This class name must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Export Players</td>
    <td valign="top">Export Players to a class of constants.</td>
  </tr>
  <tr>
    <td valign="top">Players Class Name</td>
    <td valign="top">Name of the class that will contain the Player constants.  Only valid C# class name characters are allowed. This class name must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Export Actions</td>
    <td valign="top">Export Actions to a class of constants.</td>
  </tr>
  <tr>
    <td valign="top">Actions Class Name</td>
    <td valign="top">Name of the class that will contain the Action constants. Only valid C# class name characters are allowed. This class name must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Include Action Category</td>
    <td valign="top"><p>Includes the Action Category name in the Actions list.</p></td>
  </tr>
  <tr>
    <td valign="top">Create Action Category Classes</td>
    <td valign="top"><p>If enabled, a separate class will be created for each Action Category and Action constants will be generated inside these classes.</p>
      <p>If disabled, includes the Action Category in the name of each constant. The Action Category name will preceed the Action name for the final const name.<br />
  </p>
      <p>Example: public const int Default_Jump = 1;</p>
      <p>Otherwise, the Action name alone will be used.<br />
        </p>
      <p>Example: public const int Jump = 1;</p></td>
  </tr>
  <tr>
    <td valign="top">Export Map Categories</td>
    <td valign="top">Export Map Categories to a class of constants.</td>
  </tr>
  <tr>
    <td valign="top">Map Categories Class Name</td>
    <td valign="top">Name of the class that will contain the Map Category constants. Only valid C# class name characters are allowed. This class name must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Export Layouts</td>
    <td valign="top">Export Layouts to a class of constants.</td>
  </tr>
  <tr>
    <td valign="top">Layouts Class Name</td>
    <td valign="top">Name of the class that will contain the Layout constants. Only valid C# class name characters are allowed. This class name must be unique. Layout constants will be wrapped in an additional class named for the Layout type.</td>
  </tr>
  <tr>
    <td valign="top">Export Custom Controllers</td>
    <td valign="top">Export Custom Controllers to a class of constants.</td>
  </tr>
  <tr>
    <td valign="top">CC Class Name</td>
    <td valign="top">Name of the class that will contain the Custom Controller constants.  Only valid C# class name characters are allowed. This class name must be unique.</td>
  </tr>
  <tr>
    <td valign="top">CC Axes Class Name</td>
    <td valign="top"> Name of the class that will contain the Axis constants. Only valid C# class name characters are allowed. This class name must be unique.</td>
  </tr>
  <tr>
    <td valign="top">CC Buttons Class Name</td>
    <td valign="top"> Name of the class that will contain the Button constants. Only valid C# class name characters are allowed. This class name must be unique.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p><strong>Data Management:</strong></p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td valign="top">Import Data</td>
    <td valign="top">Import data from a file. Imported data can replace or be merged with existing data.</td>
  </tr>
  <tr>
    <td width="19%" valign="top">Export Data</td>
    <td width="81%" valign="top">Export all data to a file.</td>
  </tr>
  <tr>
    <td valign="top">Compact Ids</td>
    <td valign="top">This  renumbers all id's so they start at 0 and have no gaps.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="Players" id="Players"></a>Players</h3>
<p><img src="files/images/rewirededitor_players.png" alt="Players" /></p>
<p>The Players page allows you to create and edit Players.</p>
<p>Players are at the center of input in Rewired. Generally, you will always get input from the Player and not from the controllers directly. Because of this, it is necessary to always create at least one Player. (See <a href="Players.html">Players</a> for more detailed information.)</p>
<p> Players must be assigned controller maps before controls can be mapped to actions. First you create maps in <a href="#JoystickMaps">Joystick Maps</a>, <a href="#KeyboardMaps">Keyboard Maps</a>, <a href="#MouseMaps">Mouse Maps</a>, and <a href="#CustomControllerMaps">Custom Controller Maps</a>, then assign them to each Player.</p>
<p><strong>Player Properties:</strong></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="19%" valign="top">Player Id</td>
    <td width="81%" valign="top">The id of the Player. This can be used to get the player via scripting. (Read-only)</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">Used to access the player via scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Descriptive Name</td>
    <td valign="top">The descriptive name which can be shown to players.</td>
  </tr>
  <tr>
    <td valign="top">Is Playing on Start</td>
    <td valign="top">Does this Player start with isPlaying = true? This affects controller auto-assignment if you're using that option.</td>
  </tr>
  <tr>
    <td valign="top">Assign Mouse on Start</td>
    <td valign="top">Assign the Mouse to this Player on start.</td>
  </tr>
  <tr>
    <td valign="top">Assign Keyboard on Start</td>
    <td valign="top">Assign the Keyboard to this Player on start.</td>
  </tr>
  <tr>
    <td valign="top">Exclude Joy Auto-Assign</td>
    <td valign="top">Determines whether Joysticks can be auto-assigned to this Player.</td>
  </tr>
 </table>
<p></p>
<p><strong>To create a new Player:</strong><br />
  Click the &quot;New&quot; button below the &quot;Players:&quot; box.</p>
<p><strong>To name a Player:</strong><br />
  Edit the &quot;Name&quot; and &quot;Descriptive Name&quot; fields in the second column.</p>
<p><strong>To create a Custom Controller:</strong><br />
  Click the &quot;Custom Controllers&quot; button under &quot;Starting Controllers&quot; then click the &quot;Add Custom Controller&quot; button and choose a controller.</p>
<p>Note: Custom Controllers, unlike Joysticks, are instantiated for each player. When you add a Custom Controller, the controller will be created on game start and assigned to the Player. If you add the same controller to multiple Players, the Custom Controller will be instantiated for each, therefore setting a Tag on each can be helpful to differentiate the controllers.</p>
<p><img src="files/images/rewirededitor_players_customcontrollers.png" alt="Assign Custom Controller" /></p>
<p><strong>Custom Controller Options:</strong></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="10%" valign="top">Controller</td>
    <td width="90%" valign="top">The controller to instantiate for this player.</td>
  </tr>
  <tr>
    <td valign="top">Tag</td>
    <td valign="top">Sets a tag on this player's controller. Can be used to get the controller via scripting.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p><strong>To assign a controller map:</strong><br />
  Under &quot;Default Controller Maps&quot;, click the button that corresponds to the type of Controller Map you wish to assign. Then, click &quot;Add Joystick Map&quot; (or whatever map type you chose) and change the settings. These represent the Controller Maps that will loaded by default in the Player at start or whenever a new Joystick or Custom Controller is assigned to the Player.</p>
<p><img src="files/images/rewirededitor_players_joystickmaps.png" alt="Assign Joystick Maps" /></p>
<p><strong>Controller Map Options:</strong></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="14%" valign="top">Start Enabled</td>
    <td width="86%" valign="top">Does this controller map start enabled? If set to false, all controls in this map will be ignored.</td>
  </tr>
  <tr>
    <td valign="top">Category</td>
    <td valign="top">The category of the controller map.</td>
  </tr>
  <tr>
    <td valign="top">Layout</td>
    <td valign="top">The layout of the controller map.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p><strong>To configure Layout Manager settings:</strong></p>
<p>Under &quot;Controller Map Helpers&quot;, click the &quot;Layout Manager&quot; button. Layout Manager Settings will be shown in the right column.</p>
<p><img src="files/images/rewirededitor_players_layoutmanager.png" alt="Assign Layout Manager Rule Sets" /></p>
<p><strong>Layout Manager Settings:</strong></p>
<p><img src="files/images/rewirededitor_players_layoutmanagersettings.png" width="297" height="314" alt="Layout Manager Settings" /></p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="14%" valign="top">Enabled</td>
    <td width="86%" valign="top">If enabled, the Controller Map Layout Manager will be used in this Player to manage what Controller Maps are loaded based on the Rule Sets assigned.</td>
  </tr>
  <tr>
    <td valign="top">Load from User Data Store</td>
    <td valign="top">If enabled, Controller Maps will be loaded from UserDataStore (if available) instead of from the Rewired Input Manager defaults. If no matching Controller Map is found in UserDataStore, the Rewired Input Manager default will be loaded. Note: The UserDataStore implementation must implement IControllerMapStore to be used.</td>
  </tr>
  <tr>
    <td valign="top">Starting Rule Sets</td>
    <td valign="top">The list of starting Rule Sets.</td>
  </tr>
</table>
<p></p>
<p>&nbsp;</p>
<p><strong>To assign Layout Manager Rule Sets:</strong></p>
<p>Click &quot;Add Rule Set&quot; to add a Rule Set to the list. Before you can add Rule Sets here, you must first create some <a href="#LayoutManagerRules">Layout Manager Rule Sets</a>. You can add any number of Rule Sets to the list. These Rule Sets will be assigned to the Player's Layout Manager on start and their rules applied.</p>
<p><strong>Layout Manager Rule Set Options:</strong></p>
<p><img src="files/images/rewirededitor_players_layoutmanagerrulesetoptions.png" width="297" height="98" alt="Layout Manager Rule Set Options" /></p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="14%" valign="top">Start Enabled</td>
    <td width="86%" valign="top">If true, the Rule Set will start enabled and be evaluated. Otherwise, it will start disabled and will be ignored.</td>
  </tr>
  <tr>
    <td valign="top">Rule Set</td>
    <td valign="top">The rule set.</td>
  </tr>
</table>
<p></p>
<p>&nbsp;</p>
<p><strong>To configure Map Enabler settings:</strong></p>
<p>Under &quot;Controller Map Helpers&quot;, click the &quot;Map Enabler&quot; button. Map Enabler Settings will be shown in the right column.</p>
<p><strong>To assign Map Enabler Rule Sets:</strong></p>
<p><img src="files/images/rewirededitor_players_mapenabler.png" alt="Assign Map Enabler Rule Sets" /></p>
<p><strong>Map Enabler Rule Set Options:</strong></p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="14%" valign="top">Enabled</td>
    <td width="86%" valign="top">&nbsp;</td>
  </tr>
  <tr>
    <td valign="top">Starting Rule Sets</td>
    <td valign="top">The list of starting Rule Sets.</td>
  </tr>
</table>
<p></p>
<p>&nbsp;</p>
<p><strong>To assign Map Enabler Rule Sets:</strong></p>
<p>Click &quot;Add Rule Set&quot; to add a Rule Set to the list. Before you can add Rule Sets here, you must first create some <a href="#MapEnablerRules">Map Enabler Rule Sets</a>. You can add any number of Rule Sets to the list. These Rule Sets will be assigned to the Player's Map Enabler on start and their rules applied.</p>
<p><strong>Map Enabler Rule Set Options:</strong></p>
<p><img src="files/images/rewirededitor_players_mapenablerrulesetoptions.png" width="297" height="98" alt="Map Enabler Rule Set Options" /></p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="14%" valign="top">Start Enabled</td>
    <td width="86%" valign="top">If true, the Rule Set will start enabled and be evaluated. Otherwise, it will start disabled and will be ignored.</td>
  </tr>
  <tr>
    <td valign="top">Rule Set</td>
    <td valign="top">The rule set.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="Actions" id="Actions"></a>Actions</h3>
<p><img src="files/images/rewirededitor_actions.png" alt="Actions" /></p>
<p>The Actions page allows you to create and edit Actions.</p>
<p><strong>Category Box:</strong><br />
  Select a category to see the Actions in this category.<br />
  Click &quot;Edit Categories&quot; to add or edit Action Categories.</p>
<p><strong>Action Box:</strong><br />
  Select an Action to modify its properties.</p>
<p><strong>Action Properties:</strong></p>
<p><img src="files/images/rewirededitor_actions_properties.png" alt="Action Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="17%" valign="top">Action Id</td>
    <td width="83%" valign="top">Can be used to get the value of the action via scripting.</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">Used to get the value of the action via scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Descriptive Name</td>
    <td valign="top">The descriptive name that can be shown to players when mapping controls. This name is shown for axes (when not mapped as a split axis) and for buttons.</td>
  </tr>
  <tr>
    <td valign="top">Type</td>
    <td valign="top">The type of element you expect to map to this action. This is to help with user control mapping so you can map split axes. Even if set to Button, full axis data will still be available from GetAxis.</td>
  </tr>
  <tr>
    <td valign="top">Positive Name</td>
    <td valign="top">Descriptive name for the positive pole of the axis. This can be shown to players if mapping a split axis.</td>
  </tr>
  <tr>
    <td valign="top">Negative Name</td>
    <td valign="top">Descriptive name for the negative pole of the axis.  This can be shown to players if mapping a split axis.</td>
  </tr>
  <tr>
    <td valign="top">Input Behavior</td>
    <td valign="top">The behavior that determines the final processed axis and button values of this action.</td>
  </tr>
  <tr>
    <td valign="top">Visible in Lists</td>
    <td valign="top">Determines whether this action appears in certain lists  such as in a control remapping UI..</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="InputBehaviors" id="InputBehaviors"></a>Input Behaviors</h3>
<p><img src="files/images/rewirededitor_inputbehaviors.png" alt="Input Behaviors" /></p>
<p>The Input Behaviors page allows you to create and edit Input Behaviors.</p>
<p>Input Behaviors allow you to set options for digital axis simulation (sensitivity, gravity, etc.), how to handle mouse axes, a GetButtonDown buffer, button double press speed, button dead zone, and more. You can assign an Input Behavior to an Action on the <a href="#Actions">Actions</a> page.</p>
<p><strong>Input Behavior Properties:</strong></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="20%" valign="top">Name</td>
    <td width="80%" valign="top">The name of this Input Behavior.</td>
  </tr>
  <tr>
    <td valign="top">Joystick Axis Sensitivity</td>
    <td valign="top">All joystick axes are multiplied by this value.</td>
  </tr>
  <tr>
    <td valign="top">Digital Axis Simulation</td>
    <td valign="top">Enables digital axis simulation which makes button or key presses contribute to an Action's axis value gradually over time based on gravity and sensitivity. This only affects axis values generated by button and key presses.</td>
  </tr>
  <tr>
    <td valign="top">Digital Axis Snap</td>
    <td valign="top">When input is received in the opposite direction of the current flow, snap axis value to 0 and continue from there. This only affects axis values generated by button and key presses.</td>
  </tr>
  <tr>
    <td valign="top">Digital Axis Instant Reverse</td>
    <td valign="top">When input is received in the opposite direction of the current flow, reverse the current value to the opposite sign and continue from there. This only affects axis values generated by button and key presses.</td>
  </tr>
  <tr>
    <td valign="top">Digital Axis Gravity</td>
    <td valign="top"><p>Speed (units/sec) that the axis value falls toward 0. This only affects axis values generated by button and key presses.</p></td>
  </tr>
  <tr>
    <td valign="top">Digital Axis Sensitivity</td>
    <td valign="top"><p>Speed to move toward an axis value of 1.0 in units/sec. This only affects axis values generated by button and key presses.</p></td>
  </tr>
  <tr>
    <td valign="top">Mouse XY Axis Mode</td>
    <td valign="top"><p>Affects how mouse X/Y axes contribute to the value.</p>
      <p>Mouse Axis - Value range that depends on speed of movement. The value can and does exceed +/- 1.0 by a large amount. This value is the same value returned by Unity's Input.GetAxis when axis type is set to Mouse Movement. Mouse Sensitivity is multiplied by the axis value.</p>
      <p> Digital Axis - Any mouse movement returns a value from -1.0 to 1.0 and is smoothed by the digital axis filters. This makes mouse movement behave like a button or key press.</p>
      <p>ScreenPositionDelta - A value from -1.0 to 1.0 that represents the distance moved across the screen over the update cycle. The value is normalized based on the width and height of the screen. A movement across the entire screen distance in one update cycle will return +/- 1.0.</p>
      <p>Speed - A value based on the speed the mouse is moved across the screen. Speed is calculated from the mouse movement delta / delta time. The returned value can exceed +/- 1.0.</p></td>
  </tr>
  <tr>
    <td valign="top">Mouse XY Axis Sensitivity</td>
    <td valign="top"><p>(If Mouse XY Axis Mode = MouseAxis)<br />
      Mouse X/Y axes are multiplied by this value.</p></td>
  </tr>
  <tr>
    <td valign="top">Mouse XY Delta Calc</td>
    <td valign="top"><p>(If Mouse XY Axis Mode = ScreenPositionDelta or Speed)<br />
      Determines how the screen position delta (and therefore speed) is calculated for mouse X/Y axes. An equvalent mouse movement on X and Y will yield a different result for delta X and delta Y if the screen width and height are not equal.</p>
      <p>If you need the delta consistent between X and Y movement, change this to ScreenWidth or ScreenHeight and the delta will be calculated based on only one dimension.<br />
      </p>
      <p>Note that the returned value may exceed +/- 1.0 if set to a value other than Normal.</p></td>
  </tr>
  <tr>
    <td valign="top">Mouse Other Axis Mode</td>
    <td valign="top"><p>Affects how mouse axes other than X/Y contribute to the value. This affects the mouse wheel axis.</p>
      <p>Mouse Axis - Value range goes beyond -1 to 1 depending on speed of movement. This value is the same value returned by Unity's Input.GetAxis when axis type is set to Mouse Movement. Mouse Other Axis Sensitivity is multiplied by the axis value.</p>
      <p>Digital Axis - Any movement returns -1 to 1 and is smoothed by digital axes values. Mouse movement behaves like a button or keyboard key press. Mouse sensitivity does not affect this mode. Instead, all Digital Axis filters are applied.</p></td>
  </tr>
  <tr>
    <td valign="top">Mouse Other Axis Sensitivity</td>
    <td valign="top">(If Mouse Other Axis Mode = MouseAxis)<br />
      All mouse axes except X/Y are multiplied by this value.</td>
  </tr>
  <tr>
    <td valign="top">Custom Controller Axis Sensitivity</td>
    <td valign="top">All Custom Controller axes are multiplied by this value.</td>
  </tr>
  <tr>
    <td valign="top">Button Double Press Speed</td>
    <td valign="top">Time in seconds in which to register a button double-press or double-click.</td>
  </tr>
  <tr>
    <td valign="top">Button Short Press Time</td>
    <td valign="top">Time in seconds that a button or axis must be held to register a short press.</td>
  </tr>
  <tr>
    <td valign="top">Button Short Press Expires In</td>
    <td valign="top"><p>Time in seconds after a short press is registered after which it will expire and no longer return true for any button events. For example: If you want the press to expire 2 seconds after the press first registers true, set this value to 2. This is useful, for example, if you want short and long presses to be mutually exclusive.</p>
      <p>[0 = Never expires]</p></td>
  </tr>
  <tr>
    <td valign="top">Button Long Press Time</td>
    <td valign="top">Time in seconds that a button or axis must be held to register a long press.</td>
  </tr>
  <tr>
    <td valign="top">Button Long Press Expires In</td>
    <td valign="top"><p>Time in seconds after a long press is registered after which it will expire and no longer return true for any button events. For example: If you want the press to expire 2 seconds after the press first registers true, set this value to 2.</p>
      <p>[0 = Never expires]</p></td>
  </tr>
  <tr>
    <td valign="top">Button Repeat Rate</td>
    <td valign="top">The number of times per second the button state will be True when queried with GetButtonRepeating or the equivalent event.</td>
  </tr>
  <tr>
    <td valign="top">Button Repeat Delay</td>
    <td valign="top">The duration in seconds before repeating will begin after the initial press when queried with GetButtonRepeating or the equivalent event. [0 = No delay]</td>
  </tr>
  <tr>
    <td valign="top">Button Dead Zone</td>
    <td valign="top">When an action's axis value is below this threshold, GetButton will return false. This is useful if you map axes as buttons. If the value is too low, GetButton may always return true. If the value is 1, it will never return true.</td>
  </tr>
  <tr>
    <td valign="top">Button Down Buffer</td>
    <td valign="top">Time in seconds to buffer GetButtonDown results. This makes GetButtonDown return TRUE for extra time beyond a single frame. This is useful to prevent missing button presses when pressing very rapidly and the game ignores these presses due to some blocking action. Ex: Punching in rapid succession, but presses are ignored during the punch animation. The buffer value should generally be very small such as 0.08 s, but this will depend on your specific needs.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="MapCategories" id="MapCategories"></a>Map Categories</h3>
<p><img src="files/images/rewirededitor_mapcategories.png" alt="Map Categories" /></p>
<p>The Map Categories page allows you to create and edit Map Categories.</p>
<p>See <a href="MapCategories.html">Map Categories</a> for more information.</p>
<p><strong>Map Category Properties:</strong></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="18%" valign="top">Category Id</td>
    <td width="82%" valign="top">Can be used to get the category via scripting.</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the category. Used for finding content by category in scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Descriptive Name</td>
    <td valign="top">The descriptive name that can be shown to players.</td>
  </tr>
  <tr>
    <td valign="top">Tag</td>
    <td valign="top">Allows you to tag a group of categories and search for categories by tag in scripting.</td>
  </tr>
  <tr>
    <td valign="top">User Assignable</td>
    <td valign="top">Determines whether this category appears in certain lists. Also determines whether element assignments can be automatically removed by conflict checking. If not user assignable, conflict checking cannot automatically remove the assignments. This can be used to protect certain elements and prevent the user from mapping actions to those elements which are used for system actions. For example, ESC.</td>
  </tr>
  <tr>
    <td valign="top">Check Conflicts With All</td>
    <td valign="top"><p>Determines what map categories to check against for assignment conflicts when the user is mapping a control to a map in this category.</p>
      <p>True = check maps in all categories.<br />
        False = specify which categories to check against.</p></td>
  </tr>
  <tr>
    <td valign="top">Check Conflicts With Specific Categories</td>
    <td valign="top">Add specific categories you want to allow conflict checking against. Note that this is not a two-way setting. It only affects conflict checking from controls in this category to the other category. If you want to enable/disable checking for the reverse direction, you must set it in the other category.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h4><a name="ActionCategories" id="ActionCategories"></a>Action Categories</h4>
<p><img src="files/images/rewirededitor_actioncategories.png" alt="Action Categories" /></p>
<p>The Action Categories page allows you to create and edit Action Categories.</p>
<p>Action Categories can be used to organize your Actions. Action Categories can also be used in a user control mapping UI to display categorized lists of Actions to the user.</p>
<p><strong>Action Category Properties:</strong></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="18%" valign="top">Category Id</td>
    <td width="82%" valign="top">Can be used to get the category via scripting. (Read-only)</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the category. Used for finding content by category in scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Descriptive Name</td>
    <td valign="top">The descriptive name that can be shown to players.</td>
  </tr>
  <tr>
    <td valign="top">Tag</td>
    <td valign="top">Allows you to tag a group of categories and search for categories by tag in scripting.</td>
  </tr>
  <tr>
    <td valign="top">Visible in Lists</td>
    <td valign="top">Determines whether this category appears in certain lists  such as in a control remapping UI.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="CustomControllers" id="CustomControllers"></a>Custom Controllers</h3>
<p><img src="files/images/rewirededitor_customcontrollers.png" alt="Custom Controllers" /></p>
<p>The Custom Controllers page allows you to create and edit Custom Controllers.</p>
<p>Custom Controllers are virtual controllers that you can customize, adding as many axes and buttons as you need. Any value can be used to drive the controller's element values. For example, Custom Controllers can be used for on-screeen touch controllers. (See the example in the Rewired/Examples folder.)</p>
<p><strong>Creating a Custom Controller:</strong><br />
  Click the &quot;New&quot; button below the &quot;Custom Controllers&quot; box to create a new controller.<br />
  Give the controller a Name and Descriptive name under &quot;Controller Properties.&quot;<br />
  Add axes and buttons to the controller and define properties for each.</p>
<p><strong>Custom Controller Properties:</strong></p>
<p><img src="files/images/rewirededitor_customcontrollers_properties.png" alt="Custom Controller Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="17%" valign="top">Id</td>
    <td width="83%" valign="top"><p>The source id of the Custom Controller.</p>
      <p>Note: This does not correspond to the unique id that will be assigned to the controller when it is instantiated, so it can't be used to get the  instantiated controller. However, this can be used to instantiate a Custom Controller of this type manually via scripting.</p></td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the controller. Used in scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Descriptive Name</td>
    <td valign="top">The descriptive name that can be shown to players.</td>
  </tr>
  <tr>
    <td valign="top">Type Guid</td>
    <td valign="top">The controller type guid. This is used to uniquely identify Custom Controller type using Controller.hardwareTypeGuid. Each Custom Controller should have a different Guid.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p><strong>Axis Properties:</strong></p>
<p><img src="files/images/rewirededitor_customcontrollers_axisproperties.png" alt="" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="13%" valign="top">Id</td>
    <td width="87%" valign="top">The element identifier id of the element. Can be used in scripting.</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the element. This can be used in scripting and shown to players. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Range</td>
    <td valign="top"><p>What portion of the axis's range contributes to the value?</p>
      <p>Full = Both positive and negative sides of the axis.<br />
        Positive = Only the positive side of the axis.<br />
        Negative = Only the negative side of the axis.</p></td>
  </tr>
  <tr>
    <td valign="top">Calibrate</td>
    <td valign="top">Scale and clamp values to a min/max range and apply other calibration transformations. Disable this if you want values to pass through unmodified.</td>
  </tr>
  <tr>
    <td valign="top">Zero</td>
    <td valign="top">The zero point of the axis.</td>
  </tr>
  <tr>
    <td valign="top">Min</td>
    <td valign="top">The lowest possible value of the axis. [-1 to 1]</td>
  </tr>
  <tr>
    <td valign="top">Max</td>
    <td valign="top">The highest possible value of the axis. [-1 to 1]</td>
  </tr>
  <tr>
    <td valign="top">Dead Zone</td>
    <td valign="top">When the axis value falls within the zero point +/- this threshold, the returned value will be zero.</td>
  </tr>
  <tr>
    <td valign="top">Invert</td>
    <td valign="top">Inverts the final value of the axis.</td>
  </tr>
  <tr>
    <td valign="top">Sensitivity Type</td>
    <td valign="top"><p>Determines how axis sensitivity will be calculated.<br />
    </p>
      <p>Multiplier: Value is multiplied by sensitivity.</p>
      <p>Power: Value is raised to a power.<br />
        As power nears 0, sensitivity of the axis closer to the zero/center position increases, while sensitivty closer the max position decreases.<br />
        As power increases past 1, sensitivity of the axis closer to the zero/center position decreases, while sensitivity close to the max position increases.</p>
      <p>Curve: Value is multiplied by a point on a curve.</p></td>
  </tr>
  <tr>
    <td valign="top">Sensitivity</td>
    <td valign="top"><p>The sensitivity value.</p>
      <p>(Only available if Sensitivity Type is set to Multiplier or Power.)</p></td>
  </tr>
  <tr>
    <td valign="top">Sensitivity Curve</td>
    <td valign="top"><p>The sensitivity curve.</p>
      <p>(Only available if Sensitivity Type is set to Curve.)</p></td>
  </tr>
  <tr>
    <td valign="top">Coordinate Mode</td>
    <td valign="top">The coordinate mode of the axis data. This should be set to Relative for axes that return delta values.</td>
  </tr>
 </table>
<p>&nbsp;</p>
<p><strong>Button Properties:</strong></p>
<p><img src="files/images/rewirededitor_customcontrollers_buttonproperties.png" alt="Button Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="7%" valign="top">Id</td>
    <td width="93%" valign="top">The element identifier id of the element. Can be used in scripting.</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the element. This can be used in scripting and shown to players. Must be unique.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="JoystickLayouts" id="JoystickLayouts"></a>Joystick Layouts</h3>
<p><img src="files/images/rewirededitor_joysticklayouts.png" alt="Joystick Layouts" /></p>
<p>The Joystick Layouts page allows you to create and edit Joystick Layouts.</p>
<p>See <a href="Layouts.html">Layouts</a> for more information.</p>
<p><strong>Layout Properties:</strong></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="10%" valign="top">Layout Id</td>
    <td width="90%" valign="top">Can be used to get the layout via scripting.</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the layout. Used in scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Description</td>
    <td valign="top">The descriptive name that can be shown to players.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="KeyboardLayouts" id="KeyboardLayouts"></a>Keyboard Layouts</h3>
<p><img src="files/images/rewirededitor_keyboardlayouts.png" alt="Keyboard Layouts" /></p>
<p>The Keyboard Layouts page allows you to create and edit Keyboard Layouts.</p>
<p>See <a href="Layouts.html">Layouts</a> for more information.</p>
<p><strong>Layout Properties:</strong></p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="10%" valign="top">Layout Id</td>
    <td width="90%" valign="top">Can be used to get the layout via scripting.</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the layout. Used in scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Description</td>
    <td valign="top">The descriptive name that can be shown to players.</td>
  </tr>
</table>
<p></p>
<p></p>
<hr />
<h3><a name="MouseLayouts" id="MouseLayouts"></a>Mouse Layouts</h3>
<p><img src="files/images/rewirededitor_mouselayouts.png" alt="Mouse Layouts" /></p>
<p>The Mouse Layouts page allows you to create and edit Mouse Layouts.</p>
<p>See <a href="Layouts.html">Layouts</a> for more information.</p>
<p><strong>Layout Properties:</strong></p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="10%" valign="top">Layout Id</td>
    <td width="90%" valign="top">Can be used to get the layout via scripting.</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the layout. Used in scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Description</td>
    <td valign="top">The descriptive name that can be shown to players.</td>
  </tr>
</table>
<p></p>
<p></p>
<hr />
<h3><a name="CustomControllerLayouts" id="CustomControllerLayouts"></a>Custom Controller Layouts</h3>
<p><img src="files/images/rewirededitor_customcontrollerlayouts.png" alt="Custom Controller Layouts" /></p>
<p>The Custom Controller Layouts page allows you to create and edit Custom Controller.</p>
<p>See <a href="Layouts.html">Layouts</a> for more information.</p>
<p><strong>Layout Properties:</strong></p>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="10%" valign="top">Layout Id</td>
    <td width="90%" valign="top">Can be used to get the layout via scripting.</td>
  </tr>
  <tr>
    <td valign="top">Name</td>
    <td valign="top">The name of the layout. Used in scripting. Must be unique.</td>
  </tr>
  <tr>
    <td valign="top">Description</td>
    <td valign="top">The descriptive name that can be shown to players.</td>
  </tr>
</table>
<p></p>
<p></p>
<hr />
<h3><a name="JoystickMaps" id="JoystickMaps"></a>Joystick Maps</h3>
<p><img src="files/images/rewirededitor_joystickmaps.png" alt="Joystick Maps" /></p>
<p>The Joystick Maps page allows you to create and edit Joystick Maps.  Controller Maps must be assigned to Players or they will have no effect. See the <a href="#Players">Players</a> page for more information.</p>
<p>See <a href="ControllerMaps.html">Controller Maps</a> for more information.</p>
<p><strong>Selecting a Map:</strong></p>
<p>To select a map, you must select the following: 1) A Joystick or Joystick Template, 2) a Category, and 3) a Layout.</p>
<p><strong>Creating a new Map:</strong></p>
<p>Select a joystick/template, a category, and a layout, then click the &quot;Create Map&quot; button. A blank map will be created. You can then add elements to the new map by clicking the &quot;New&quot; button beneath the &quot;Elements&quot; box or by clicking the &quot;Create Defaults&quot; button in the same location. &quot;Create Defaults&quot; will create a series of unassigned elements based on the current joystick. You can then assign actions to these elements. Note: &quot;Create Defaults&quot; is only enabled if the map is empty of elements.</p>
<p>When a Joystick, Template, Category, or Layout has had a map created for it, the name will be displayed in a different color and have an * after it.</p>
<p><strong>Deleting a Map:</strong></p>
<p>Select a joystick/template, a category, and a layout, then click the &quot;Delete Map&quot; button.</p>
<p><strong>Element Properties (Axis):</strong></p>
<p><img src="files/images/rewirededitor_joystickmaps_axisproperties.png" alt="Axis Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="17%" valign="top">Element</td>
    <td width="83%" valign="top">The controller element.</td>
  </tr>
  <tr>
    <td valign="top">Axis Range</td>
    <td valign="top"><p>What portion of the axis's range triggers the assigned action?</p>
      <p>Full = Both positive and negative sides of the axis trigger the action.<br />
        Positive = Only the positive side of the axis triggers the action.<br />
        Negative = Only the negative side of the axis triggers the action.</p></td>
  </tr>
  <tr>
    <td valign="top">Invert Axis</td>
    <td valign="top">Invert the axis? (Only shown if Axis Range is Full)</td>
  </tr>
  <tr>
    <td valign="top">Axis Contribution</td>
    <td valign="top">      When this element is activated, does it add positive or negative value to the action's final axis value? (Only shown if Axis Range is Positive or Negative)</td>
  </tr>
  <tr>
    <td valign="top">Action Category</td>
    <td valign="top">The category containing the action to be assigned to this element.</td>
  </tr>
  <tr>
    <td valign="top">Action</td>
    <td valign="top">The action assigned to this element.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p><strong>Element Properties (Button):</strong></p>
<p><img src="files/images/rewirededitor_joystickmaps_buttonproperties.png" alt="Button Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="16%" valign="top">Element</td>
    <td width="84%" valign="top">The controller element.</td>
  </tr>
  <tr>
    <td valign="top">Axis Contribution</td>
    <td valign="top">When this element is activated, does it add positive or negative value to the action's final axis value?</td>
  </tr>
  <tr>
    <td valign="top">Action Category</td>
    <td valign="top">The category containing the action to be assigned to this element.</td>
  </tr>
  <tr>
    <td valign="top">Action</td>
    <td valign="top">The action assigned to this element.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="KeyboardMaps" id="KeyboardMaps"></a>Keyboard Maps</h3>
<p><img src="files/images/rewirededitor_keyboardmaps.png" alt="Keyboard Maps" /></p>
<p>The Keyboard Maps page allows you to create and edit Keyboard Maps.  Controller Maps must be assigned to Players or they will have no effect. See the <a href="#Players">Players</a> page for more information.</p>
<p>See <a href="ControllerMaps.html">Controller Maps</a> for more information.</p>
<p><strong>Selecting a Map:</strong></p>
<p>To select a map, you must select the following: 1)  a Category, and 2) a Layout.</p>
<p><strong>Creating a new Map:</strong></p>
<p>Select a  category and a layout, then click the &quot;Create Map&quot; button. A blank map will be created. You can then add elements to the new map by clicking the &quot;New&quot; button beneath the &quot;Elements&quot; box. You can then assign an action to the element.</p>
<p>When a  Category or Layout has had a map created for it, the name will be displayed with an (*) after it.</p>
<p><strong>Deleting a Map:</strong></p>
<p>Select a category and a layout, then click the &quot;Delete Map&quot; button.</p>
<p><strong>Element Properties:</strong></p>
<p><img src="files/images/rewirededitor_keyboardmaps_elementproperties.png" alt="Element Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="18%" valign="top">Key</td>
    <td width="82%" valign="top">The keyboard key assigned to this element.</td>
  </tr>
  <tr>
    <td valign="top">Poll for Key Press</td>
    <td valign="top">Allows you to assign a key by pressing a key on the keyboard. Note: Certain keys may not be assignable via this method such as Left Shift and Right Shift. Those keys can only be assigned manually using the list box.</td>
  </tr>
  <tr>
    <td valign="top">Modifier Key 1</td>
    <td valign="top"><p>A modifier key that must be held for this action to return true. The order of multiple modifier key presses makes no difference.</p>
      <p>NOTE: Many modifier key combos do not work correctly in the Unity editor because the key combos are already mapped to Unity functions.</p></td>
  </tr>
  <tr>
    <td valign="top">Modifier Key 2</td>
    <td valign="top"><p>A modifier key that must be held for this action to return true. The order of multiple modifier key presses makes no difference.</p></td>
  </tr>
  <tr>
    <td valign="top">Modifier Key 3</td>
    <td valign="top"><p>A modifier key that must be held for this action to return true. The order of multiple modifier key presses makes no difference.</p></td>
  </tr>
  <tr>
    <td valign="top">Axis Contribution</td>
    <td valign="top">When this key is pressed, does it add positive or negative value to the action's final axis value?</td>
  </tr>
  <tr>
    <td valign="top">Action Category</td>
    <td valign="top">The category containing the action to be assigned to this element.</td>
  </tr>
  <tr>
    <td valign="top">Action</td>
    <td valign="top">The action assigned to this element.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="MouseMaps" id="MouseMaps"></a>Mouse Maps</h3>
<p><img src="files/images/rewirededitor_mousemaps.png" alt="Mouse Maps" /></p>
<p>The Mouse Maps page allows you to create and edit Mouse Maps.  Controller Maps must be assigned to Players or they will have no effect. See the <a href="#Players">Players</a> page for more information.</p>
<p>See <a href="ControllerMaps.html">Controller Maps</a> for more information.</p>
<p><strong>Selecting a Map:</strong></p>
<p>To select a map, you must select the following: 1)  a Category, and 2) a Layout.</p>
<p><strong>Creating a new Map:</strong></p>
<p>Select a  category and a layout, then click the &quot;Create Map&quot; button. A blank map will be created. You can then add elements to the new map by clicking the &quot;New&quot; button beneath the &quot;Elements&quot; box. You can then assign an action to the element.</p>
<p>When a  Category or Layout has had a map created for it, the name will be displayed with an (*) after it.</p>
<p><strong>Deleting a Map:</strong></p>
<p>Select a category and a layout, then click the &quot;Delete Map&quot; button.</p>
<p><strong>Element Properties (Axis):</strong></p>
<p><img src="files/images/rewirededitor_mousemaps_axisproperties.png" alt="Axis Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="17%" valign="top">Element</td>
    <td width="83%" valign="top">The controller element.</td>
  </tr>
  <tr>
    <td valign="top">Axis Range</td>
    <td valign="top"><p>What portion of the axis's range triggers the assigned action?</p>
      <p>Full = Both positive and negative sides of the axis trigger the action.<br />
        Positive = Only the positive side of the axis triggers the action.<br />
        Negative = Only the negative side of the axis triggers the action.</p></td>
  </tr>
  <tr>
    <td valign="top">Invert Axis</td>
    <td valign="top">Invert the axis? (Only shown if Axis Range is Full)</td>
  </tr>
  <tr>
    <td valign="top">Axis Contribution</td>
    <td valign="top"> When this element is activated, does it add positive or negative value to the action's final axis value? (Only shown if Axis Range is Positive or Negative)</td>
  </tr>
  <tr>
    <td valign="top">Action Category</td>
    <td valign="top">The category containing the action to be assigned to this element.</td>
  </tr>
  <tr>
    <td valign="top">Action</td>
    <td valign="top">The action assigned to this element.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p><strong>Element Properties (Button):</strong></p>
<p><img src="files/images/rewirededitor_mousemaps_buttonproperties.png" alt="Button Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="18%" valign="top">Element</td>
    <td width="82%" valign="top">The controller element.</td>
  </tr>
  <tr>
    <td valign="top">Axis Contribution</td>
    <td valign="top">When this element is activated, does it add positive or negative value to the action's final axis value?</td>
  </tr>
  <tr>
    <td valign="top">Action Category</td>
    <td valign="top">The category containing the action to be assigned to this element.</td>
  </tr>
  <tr>
    <td valign="top">Action</td>
    <td valign="top">The action assigned to this element.</td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h3><a name="CustomControllerMaps" id="CustomControllerMaps"></a>Custom Controller Maps</h3>
<p><img src="files/images/rewirededitor_customcontrollermaps.png" alt="Custom Controller Maps" /></p>
<p>The Custom Controller Maps page allows you to create and edit Custom Controller Maps. Controller Maps must be assigned to Players or they will have no effect. See the <a href="#Players">Players</a> page for more information.</p>
<p>See <a href="ControllerMaps.html">Controller Maps</a> for more information.</p>
<p><strong>Selecting a Map:</strong></p>
<p>To select a map, you must select the following: 1) A Custom Controller, 2) a Category, and 3) a Layout.</p>
<p><strong>Creating a new Map:</strong></p>
<p>Select a Custom Controller, a category, and a layout, then click the &quot;Create Map&quot; button. A blank map will be created. You can then add elements to the new map by clicking the &quot;New&quot; button beneath the &quot;Elements&quot; box or by clicking the &quot;Create Defaults&quot; button in the same location. &quot;Create Defaults&quot; will create a series of unassigned elements based on the current Custom Controller. You can then assign actions to these elements. Note: &quot;Create Defaults&quot; is only enabled if the map is empty of elements.</p>
<p>When a Custom Controller,  Category, or Layout has had a map created for it, the name will be displayed with an (*) after it.</p>
<p><strong>Deleting a Map:</strong></p>
<p>Select a Custom Controller, a category, and a layout, then click the &quot;Delete Map&quot; button.</p>
<p><strong>Element Properties (Axis):</strong></p>
<p><img src="files/images/rewirededitor_joystickmaps_axisproperties.png" alt="Axis Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="17%" valign="top">Element</td>
    <td width="83%" valign="top">The controller element.</td>
  </tr>
  <tr>
    <td valign="top">Axis Range</td>
    <td valign="top"><p>What portion of the axis's range triggers the assigned action?</p>
      <p>Full = Both positive and negative sides of the axis trigger the action.<br />
        Positive = Only the positive side of the axis triggers the action.<br />
        Negative = Only the negative side of the axis triggers the action.</p></td>
  </tr>
  <tr>
    <td valign="top">Invert Axis</td>
    <td valign="top">Invert the axis? (Only shown if Axis Range is Full)</td>
  </tr>
  <tr>
    <td valign="top">Axis Contribution</td>
    <td valign="top"> When this element is activated, does it add positive or negative value to the action's final axis value? (Only shown if Axis Range is Positive or Negative)</td>
  </tr>
  <tr>
    <td valign="top">Action Category</td>
    <td valign="top">The category containing the action to be assigned to this element.</td>
  </tr>
  <tr>
    <td valign="top">Action</td>
    <td valign="top">The action assigned to this element.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p><strong>Element Properties (Button):</strong></p>
<p><img src="files/images/rewirededitor_joystickmaps_buttonproperties.png" alt="Button Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="17%" valign="top">Element</td>
    <td width="83%" valign="top">The controller element.</td>
  </tr>
  <tr>
    <td valign="top">Axis Contribution</td>
    <td valign="top">When this element is activated, does it add positive or negative value to the action's final axis value?</td>
  </tr>
  <tr>
    <td valign="top">Action Category</td>
    <td valign="top">The category containing the action to be assigned to this element.</td>
  </tr>
  <tr>
    <td valign="top">Action</td>
    <td valign="top">The action assigned to this element.</td>
  </tr>
</table>
 <p>&nbsp;</p>
 <hr />
 <h3><a name="LayoutManagerRules" id="LayoutManagerRules"></a>Layout Manager Rules</h3>
 <p><img src="files/images/rewirededitor_layoutmanagerrules.png" alt="Layout Manager Rules" /></p>
 <p>The Layout Manager Rules page allows you to create and edit Layout Manager Rule Sets and Rules.  Rule Sets must be assigned to Players or they will have no effect. See the <a href="#Players">Players</a> page for more information.</p>
 <p>See <a href="LayoutManager.html">Layout Manager</a> for more information.</p>
 <p>Note: </p>
 <p><strong>Layout Manager Rule Sets Box:</strong><br />
Select a Rule Set to modify its properties.</p>
 <p><strong>Rule Set Properties:</strong></p>
 <p><img src="files/images/rewirededitor_layoutmanagerrules_properties.png" alt="Layout Manager Rule Set Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
   <tr>
     <td width="17%" valign="top">Id</td>
     <td width="83%" valign="top">The id of the Rule Set. This can be used in scripting.</td>
   </tr>
   <tr>
     <td valign="top">Name</td>
     <td valign="top">The name of the set. Must be unique.</td>
   </tr>
   <tr>
     <td valign="top">Tag</td>
     <td valign="top">Allows you to search for sets by tag in scripting.</td>
   </tr>
 </table>
 <p>&nbsp;</p>
 <p><strong>Rules:</strong></p>
 <p>This is the list of Rules in the Rule Set. Add new rules by clicking the &quot;Add Rule&quot; button.</p>
 <p><strong>Rule Options:</strong></p>
 <p>Set the properties on the Rule to determine what effect it has.</p>
 <p><img src="files/images/rewirededitor_layoutmanagerrules_ruleoptions.png" width="338" height="223" alt="Layout Manager Rule Options" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
   <tr>
     <td width="17%" valign="top">Tag</td>
     <td width="83%" valign="top">A tag which can be used to find an rule in the list. This is optional.</td>
   </tr>
   <tr>
     <td valign="top">&nbsp;</td>
     <td valign="top">&nbsp;</td>
   </tr>
   <tr>
     <td valign="top">Controller Selector</td>
     <td valign="top"><p>Determines selection method used to find the devices the entry applies to.</p>
       <p>Available options:</p>
       <ul>
         <li>Controller Type - Selects all Controllers that match a specific ControllerType.</li>
         <li>Controller Template Type - Selects all Controllers that match a specific Controller Template type.<br />
         </li>
         <li>Hardware Type - Selects all Controllers that match a specific hardware type guid and/or hardware identifier.</li>
       </ul></td>
   </tr>
   <tr>
     <td valign="top">Controller Type</td>
     <td valign="top"><p>The Controller Type the entry applies to.</p></td>
   </tr>
   <tr>
     <td valign="top">Controller Template</td>
     <td valign="top"><p>The Controller Template type this entry applies to.</p>
       This is only displayed if Controller Selector is set to Controller Template Type.</td>
   </tr>
   <tr>
     <td valign="top">Controller</td>
     <td valign="top"><p>The hardware type  of the Controller this entry applies to. This targets all Controllers that match a specific recognized hardware type such as all Xbox 360 controllers.</p>
       <p>This is only displayed if Controller Selector is set to Hardware Type.</p></td>
   </tr>
   <tr>
     <td valign="top">Hardware Identifier</td>
     <td valign="top"><p>The hardware identifier of the Controller this entry applies to.This targets all Controllers that match a specific unrecognized hardware type such as for a Joystick that has no controller definition built into Rewired. This value can be obtained from Controller.hardwareIdentifier at runtime. If Controller is set to Unknown Controller and this value is blank, it will match all Unknown Controllers.</p>
       <p>This is only displayed if Controller Selector is set to Hardware Type.</p></td>
   </tr>
   <tr>
     <td valign="top">&nbsp;</td>
     <td valign="top">&nbsp;</td>
   </tr>
   <tr>
     <td valign="top">Categories</td>
     <td valign="top">The Map Categories of the Controller Maps the rule applies to.</td>
   </tr>
   <tr>
     <td valign="top">Layout</td>
     <td valign="top">The Layout of the Controller Maps the rule applies to.</td>
   </tr>
 </table>
 <p></p>
 <p>&nbsp;</p>
 <p>&nbsp;</p>
 <hr />
 <h3><a name="MapEnablerRules" id="MapEnablerRules"></a>Map Enabler Rules</h3>
 <p><img src="files/images/rewirededitor_mapenablerrules.png" alt="Map Enabler Rules" /></p>
 <p>The Map Enabler Rules page allows you to create and edit Map Enabler  Rule Sets and Rules.  Rule Sets must be assigned to Players or they will have no effect. See the <a href="#Players">Players</a> page for more information.</p>
 <p>See <a href="MapEnabler.html">Map Enabler</a> for more information. </p>
 <p><strong>Map Enabler Rule Sets Box:</strong><br />
   Select a Rule Set to modify its properties.</p>
 <p><strong>Rule Set Properties:</strong></p>
 <p><img src="files/images/rewirededitor_mapenablerrules_properties.png" alt="Map Enabler Rule Set Properties" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
   <tr>
     <td width="17%" valign="top">Id</td>
     <td width="83%" valign="top">The id of the Rule Set. This can be used in scripting.</td>
   </tr>
   <tr>
     <td valign="top">Name</td>
     <td valign="top">The name of the set. Must be unique.</td>
   </tr>
   <tr>
     <td valign="top">Tag</td>
     <td valign="top">Allows you to search for sets by tag in scripting.</td>
   </tr>
 </table>
 <p>&nbsp;</p>
 <p><strong>Rules:</strong></p>
 <p>This is the list of Rules in the Rule Set. Add new rules by clicking the &quot;Add Rule&quot; button.</p>
 <p><strong>Rule Options:</strong></p>
 <p>Set the properties on the Rule to determine what effect it has.</p>
 <p><img src="files/images/rewirededitor_mapenablerrules_ruleoptions.png" alt="Map Enabler Rule Options" /></p>
 <table width="100%" border="0" cellpadding="0" cellspacing="0">
   <tr>
     <td width="17%" valign="top">Tag</td>
     <td width="83%" valign="top">A tag which can be used to find an rule in the list. This is optional.</td>
   </tr>
   <tr>
     <td valign="top">&nbsp;</td>
     <td valign="top">&nbsp;</td>
   </tr>
   <tr>
     <td valign="top">Controller Selector</td>
     <td valign="top"><p>Determines selection method used to find the devices the entry applies to.</p>
       <p>Available options:</p>
       <ul>
         <li>All - Selects all Controllers.</li>
         <li>Controller Type - Selects all Controllers that match a specific ControllerType.</li>
         <li>Controller Template Type - Selects all Controllers that match a specific Controller Template type.<br />
         </li>
         <li>Hardware Type - Selects all Controllers that match a specific hardware type guid and/or hardware identifier.</li>
       </ul></td>
   </tr>
   <tr>
     <td valign="top">Controller Type</td>
     <td valign="top"><p>The Controller Type the entry applies to.</p></td>
   </tr>
   <tr>
     <td valign="top">Controller Template</td>
     <td valign="top"><p>The Controller Template type this entry applies to.</p>
       This is only displayed if Controller Selector is set to Controller Template Type.</td>
   </tr>
   <tr>
     <td valign="top">Controller</td>
     <td valign="top"><p>The hardware type  of the Controller this entry applies to. This targets all Controllers that match a specific recognized hardware type such as all Xbox 360 controllers.</p>
       <p>This is only displayed if Controller Selector is set to Hardware Type.</p></td>
   </tr>
   <tr>
     <td valign="top">Hardware Identifier</td>
     <td valign="top"><p>The hardware identifier of the Controller this entry applies to.This targets all Controllers that match a specific unrecognized hardware type such as for a Joystick that has no controller definition built into Rewired. This value can be obtained from Controller.hardwareIdentifier at runtime. If Controller is set to Unknown Controller and this value is blank, it will match all Unknown Controllers.</p>
       <p>This is only displayed if Controller Selector is set to Hardware Type.</p></td>
   </tr>
   <tr>
     <td valign="top">&nbsp;</td>
     <td valign="top">&nbsp;</td>
   </tr>
   <tr>
     <td valign="top">Categories</td>
     <td valign="top">The Map Categories of the Controller Maps the rule applies to. If this is empty, this will apply to all Controller Maps regardless of the Map Category.</td>
   </tr>
   <tr>
     <td valign="top">Layouts</td>
     <td valign="top">The Layouts  of the Controller Maps the rule applies to. If this is empty, this will apply to all Controller Maps regardless of the Layout.</td>
   </tr>
 </table>
 <p></p>
 <p></p>
 <p></p>
    <div class="bottom-pager clearfix">
	    <a class="back-button" href="BestPractices.html" title="Best Practices"><span class="button-img"></span>Best Practices</a>
    	<a class="forward-button" href="https://guavaman.com/projects/rewired/docs/api-reference" title="API Reference" target="_blank"><span class="button-img"></span>API Reference</a>
	</div>

<!-- InstanceEndEditable -->
        </div>
        
    </div>
  <div class="footer clearfix">
   	<p class="left">Copyright &copy;2014-2021 <a href="https://guavaman.com" title="Guavaman Enterprises">Guavaman Enterprises</a>. All rights reserved. No materials may be reproduced without permission.</p>
  	<p class="right"><a href="https://guavaman.com/projects/rewired" title="Return to Rewired Website">Return to Rewired Website</a></p>
  </div>
  <!-- end .content --></div>
  <!-- end .container --></div>
  
  
</body>
<!-- InstanceEnd --></html>
